In electronics industry, numerous devices have been designed having a some sort of microprocessor or a corresponding processor as the basic functional component. This processor can be positioned e.g. in connection with a microcontroller, wherein it has some peripherals positioned in the same microchip. These devices are also called an embedded system, examples of these being mobile stations, such as cellular network mobile stations CMT (Cellular Mobile Telephone), PC (Personal Computer), PDA (Personal Digital Assistant) etc. To control the operation of such a device, often a device specific operating system has been designed, having the basic task of attending to the timings of the system, control of resources, processing and transmitting of messages between different program blocks. Typically, these kind of operating systems are so-called real time operating systems (RTOS). A typical feature for such a real time operating system is e.g. the fact that it can be used for predicting a response time for external interrupt, such as pressing of keys or timing, minimized use of memory resources and, additionally, real time operating systems are very efficient for controlling tasks. Further, in real time operating systems, often properties for controlling capacity have been designed, e.g. in portable devices for extending operation time of batteries. The size of such real time operating systems is usually between 10 and 100 kB of program code and information memory (RAM, Random Access Memory).
Non-real-time operating systems differ from real time operating systems e.g. in the fact that the response times for running different operations are longer than in real time operating systems and, on the other hand, the response times can neither be predicted in non-real time operating systems. In multitasking non-real-time operating systems each executing process retards the running of other processes of the same or lower priority level, wherein also response times can lengthen. Further, the non-real time operating system has no response times determined in the kernel of the operating system, which makes the predictability of the execution speed of such operating system difficult.
Mobile stations have a limited capacity of memory and other system resources. Further, in mobile stations there exists often no system support for peripherals, such as writeable mass memory (Hard Disk) or memory cards, such as FLASH memories. In mobile stations, there is usually no possibility arranged for loading programs to the system in a dynamic manner, i.e., the software of the mobile station is loaded in the manufacturing phase to the mobile station, or in some cases the program can be updated e.g. in connection with maintenance. In addition, many mobile stations comprise no memory management unit (MMU), because mobile station software are typically manufactured and tested by mobile station manufacturers. Due to these grounds, device-specific real-time operating systems also comprise no support for the above-mentioned properties.
Companies manufacturing personal computers and personal digital assistants have developed operating systems having support for the above-mentioned properties, but these operating systems do not operate in real time as such, wherein they cannot be used for predicting maximum response times for running certain operations. The size of such operating systems is typically of the range 200 kB to some MB, wherein it is not necessarily easy to adapt them in a portable machine, such as a mobile station.
Real time operating systems, and particularly operating systems developed for data processing devices have partially opposite requirements, wherein it is difficult to accomplish an operating system with the same programming interface towards the operating system and, simultaneously all the necessary properties, such as small memory consumption and real time characteristics.
Recently, also electronic devices have been developed having both a data processor and a telecommunication device in combination. Such devices are in the present specification called communication devices. One example of such a device is Nokia 9000 Communicator, which is a portable device with a relatively small size having both data processing operations and mobile station operations. However, one object of this type of combined device has been to utilize a previously developed product as much as possible, wherein an aim has been to retain e.g. the software for these different devices compatible in this new device. This has been achieved by providing the data processing portion with a processor of its own and an operating system of its own therein, and likewise, the mobile station embodiments have a processor of their own and an operating system of their own. Thus, it has been possible to utilize the results of earlier product development as efficiently as possible and precipitate the launching of the device. However, separate processors usually spend more capacity than is possible to obtain in a single processor solution, wherein such a portable device needs a more efficient battery, or else its execution time cannot be made as long as is possible by separate devices.
Running two operating systems in a single processor is in prior art solutions accomplished by implementing the operating systems by utilizing the features of either operating system. This type of combination has e.g. the problem that when the operating systems have very different types of properties, it is not possible to carry out all the properties of the operating systems that are to be combined. This causes e.g. the disadvantage that all the application programs developed for these operating systems cannot be used, or the use requires changes in the application programs. Further, when new applications are developed, the application programs made on the basis of one operating system has to be changed in accordance With another operating system. This adds to the work needed and the possibility of mistakes.
Further, U.S. Pat. No. 5,278,973 discloses a data processor where in one processor several operating systems can be used. However, of these operating systems only one can be used at a time. The change of the operating system requires that the execution of the operating system in use has to be called off and the data processor has to be reactivated.